//----------------------------------------------------------------------------------------------
//	Filename:	SegmentsGraph.h
//	Author:		Sandro Spina
//	Date:		27/01/2013
//----------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------
#pragma once

#include "UniqueId.h"
#include "ObjStructureGraph.h"

namespace Illumina
{
	namespace Core
	{
		struct StructureGraphsForge 
		{			
			::UniqueID * nodeID;
	
			StructureGraphsForge();

			//Simple Structure Graph Forges
			ObjStructureGraph * ForgeNullGraph();

			ObjStructureGraph * ForgeStairsStructureGraph();

			ObjStructureGraph * Forge2orMoreStairsStructureGraph();	

			ObjStructureGraph * ForgeSimpleChairGraph();	

			ObjStructureGraph * GetMultiSegmentFloorGraph();	

			//Create and populate a new node. Return it but DON'T add it to the nodes list.
			//TODO ADD new list of nodes which are not in the scene.
			//Currently used from graphstructures forge class
			ObjStructureGraph::Node * CreateNewNode(std::string label, ObjStructureGraph::nodetype p_type);

			//Inference Structure Graph Forges
			//TODO
		};
	}
}